package handler

import (
	"fmt"
	"go_study/redis"
	"go_study/sql_op"
	"net/http"

	"github.com/gin-gonic/gin"
)

// 处理注册请求
func RegisteHandler(ctx *gin.Context) {
	//获取到数据库连接
	orm := sql_op.GetOrm()
	rdb := redis.GetRDB()

	//获取前端传值
	name := ctx.PostForm("name")
	password := ctx.PostForm("password")

	var hasName bool
	//查询用户名是否存在
	_, hasName = rdb.GetRedis(name)
	if !hasName { //redis中没有找到
		//数据库查找，检验该用户名是否存在
		_, hasName = orm.SelectByName(name)
	}
	var status string //返回给前端的状态
	if !hasName {     //用户名未占用
		//向数据库中添加用户
		orm.AddUser(name, password)
		fmt.Println(password)
		status = "注册成功"
		fmt.Println("注册成功")
	} else { //用户名被占用

		status = "注册失败，用户名被占用"
		fmt.Println("注册失败")
	}
	//数据响应给前端
	ctx.JSON(http.StatusOK, gin.H{
		"status": status,
	})
}
